<?php

/*
 * Modelo: "datos_sen.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podr� utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


@include_once("parroquia.php");
@include_once("sector.php");
@include_once("usuario.php");

class Datos_sen {
	
    /* Nombre de las Variables del Modelo (INFORMATIVO)
    +----------------+-------------+------+-----+---------+----------------+
	| Field          | Type        | Null | Key | Default | Extra          |
	+----------------+-------------+------+-----+---------+----------------+
	| id_senal       | int(11)     | NO   | PRI | NULL    | auto_increment |
	| coord_x        | varchar(20) | NO   |     | NULL    |                |
	| coord_y        | varchar(20) | NO   |     | NULL    |                |
	| id_tipo_sen    | int(11)     | NO   |     | NULL    |                |
	| id_categ_sen   | int(11)     | NO   |     | NULL    |                |
	| id_senal_tra   | int(11)     | NO   |     | NULL    |                |
	| desc_image_sen | varchar(5)  | NO   |     | NULL    |                |
	| id_estad_sen   | int(11)     | NO   |     | NULL    |                |
	| id_status_sen  | char(1)     | NO   |     | NULL    |                |
	| id_nomenclador | varchar(4)  | NO   |     | NULL    |                |
	| id_estado      | char(2)     | NO   |     | NULL    |                |
	| id_municipio   | char(5)     | NO   |     | NULL    |                |
	| id_parroquia   | char(8)     | YES  |     | NULL    |                |
	| id_sector      | char(11)    | YES  |     | NULL    |                |
	| referencia     | text        | YES  |     | NULL    |                |
	| averia         | char(1)     | NO   |     | NULL    |                |
	| login_registro | varchar(16) | NO   |     | NULL    |                |
	| fecha_registro | datetime    | NO   |     | NULL    |                |
	| observaciones  | text        | YES  |     | NULL    |                |
	+----------------+-------------+------+-----+---------+----------------+
	*/

    // Variable para los resultados de las Consultas
    private $respuesta;

	// Tablas del Modelo
    private $tsmist_datos_sen 		= "smist_datos_sen";
	private $tsmist_tipo_sen 		= "smist_tipo_sen";
	private $tsmist_categ_sen 		= "smist_categ_sen";
	private $tsmist_senal_tra 		= "smist_senal_tra";
	private $tsmist_estad_sen 		= "smist_estad_sen";
	private $tsmist_tipo_via 		= "smist_tipo_via";
	private $tparroquia 			= "parroquia";
	private $tsector 				= "sector";
	private $tusuario 				= "usuario";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UNA SEÑAL
    // =================================================================================================================
	
    public function insertar_datos_sen( $coord_x, $coord_y, $id_tipo_sen, $id_categ_sen, $id_senal_tra, $desc_image_sen, $id_estad_sen, $id_status_sen, $fecha_instalacion, $estandar, $id_estado, $id_municipio, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $login_registro, $observaciones, $coord_x_centro, $coord_y_centro, $zoom_centro )
    {
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar la Señal (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
            $fmt_fecha_ins 	= $conexion->darFormatoFecha($fecha_instalacion);
			$fecha_actual 	= $conexion->getSQLTimeStamp();
			
			$sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen ( coord_x, coord_y, id_tipo_sen, id_categ_sen, id_senal_tra, desc_image_sen, id_estad_sen, id_status_sen, fecha_instalacion, estandar, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia,  login_registro, fecha_registro, observaciones, coord_x_centro, coord_y_centro, zoom_centro )
             values ( '$coord_x', '$coord_y', $id_tipo_sen, $id_categ_sen, $id_senal_tra, '$desc_image_sen', $id_estad_sen, '$id_status_sen', $fmt_fecha_ins, '$estandar', '$id_estado', '$id_municipio', ";
			
            if ( $id_parroquia != "" ) {
                    $sql .= "'$id_parroquia', ";
            } else {
                    $sql .= "null, ";
            }
            if ( $id_sector != "" ) {
                    $sql .= "'$id_sector', ";
            } else {
                    $sql .= "null, ";
            }
			
			$sql .= "$id_tipo_via, ";
			
            if ( $referencia != "" ) {
                    $sql .= "'$referencia', ";
            } else {
                    $sql .= "null, ";
            }
			
            $sql .= "'$login_registro', $fecha_actual, ";
			
            if ( $observaciones != "" ) {
                    $sql .= "'$observaciones', ";
            } else {
                    $sql .= "null, ";
            }
			
			$sql .= "'$coord_x_centro', '$coord_y_centro', $zoom_centro )";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar la Señal: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Señal de Tránsito se ha Agregado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
        }
    }
	
	
    // =================================================================================================================
    //	FUNCION - ACTUALIZAR LAS COORDENADAS DE UNA SEÑAL
    // =================================================================================================================

    public function actualizar_coord_sen( $id_senal, $coord_x, $coord_y, $coord_x_centro, $coord_y_centro, $zoom_centro ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Actualizar las Coordenadas de la Señal (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$sql = "update ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen set 
						coord_x = '$coord_x', 
						coord_y = '$coord_y', 
						coord_x_centro = '$coord_x_centro', 
						coord_y_centro = '$coord_y_centro', 
						zoom_centro = $zoom_centro
					where id_senal = $id_senal";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Actualizar las Coordenadas de la Señal: ".$conexion->getLastMessage();
            }
            else
            {
                $this->retorno[0] = "S";
                $this->retorno[1] = "Las Coordenadas de la Señal se han Actualizado con Exito.";
            }

			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
    // =================================================================================================================
    //	FUNCION - MODIFICAR LOS DATOS DE UNA SEÑAL
    // =================================================================================================================
	
    public function modificar_datos_sen( $id_senal, $id_estad_sen, $id_status_sen, $fecha_instalacion, $estandar, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $observaciones ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Modificar la Señal (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$fmt_fecha_ins 	= $conexion->darFormatoFecha($fecha_instalacion);
			
			$sql = "update ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen set 
						id_estad_sen = $id_estad_sen, 
						id_status_sen = '$id_status_sen', 
						fecha_instalacion = $fmt_fecha_ins, 
						estandar = '$estandar', ";
			
			if ( $id_parroquia != "" ) {
				$sql .= "id_parroquia = '$id_parroquia', ";
			} else {
				$sql .= "id_parroquia = null, ";
			}
			if ( $id_sector != "" ) {
				$sql .= "id_sector = '$id_sector', ";
			} else {
				$sql .= "id_sector =  null, ";
			}
			
			$sql .= "id_tipo_via = $id_tipo_via, ";
			
			if ( $referencia != "" ) {
				$sql .= "referencia = '$referencia', ";
			} else {
				$sql .= "referencia = null, ";
			}
			if ( $observaciones != "" ) {
				$sql .= "observaciones = '$observaciones' ";
			} else {
				$sql .= "observaciones = null ";
			}		
			
			$sql .= "where id_senal = $id_senal";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            $this->retorno[0] = "S";
            $this->retorno[1] = "La Señal se ha Modificado con Exito.";
            
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
    // =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA SEÑAL DADO SU ID
    // =================================================================================================================
	
    public function consultar_datos_sen( $id_senal ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar la Señal (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$fmt_fecha_ins 	= $conexion->extraerCampoFecha('ds.fecha_instalacion');
			$fmt_fecha_reg 	= $conexion->extraerCampoFechaHora('ds.fecha_registro');
			
			$sql = "select ds.id_senal as id_senal, 
						ds.coord_x as coord_x, 
						ds.coord_y as coord_y, 
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_estad_sen as id_estad_sen, 
						es.nombre as nombre_estad_sen, 
						ds.id_status_sen as id_status_sen, 
						$fmt_fecha_ins as fecha_instalacion, 
						ds.estandar as estandar, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector, 
						ds.id_tipo_via as id_tipo_via, 
						tv.nombre as nombre_tipo_via, 
						ds.referencia as referencia, 
						ds.login_registro as login_registro,  
						$fmt_fecha_reg as fecha_registro, 
						ds.observaciones as observaciones, 
						ds.coord_x_centro as coord_x_centro, 
						ds.coord_y_centro as coord_y_centro, 
						ds.zoom_centro as zoom_centro 
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_estad_sen as es, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_via as tv 
					where ds.id_senal = $id_senal and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_estad_sen = es.id_estad_sen and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar la Señal: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_senal'] != "" ) 
				{
					
					$_xml="<datos_sen>";
					$id_senal			= $temparray['id_senal'];
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					$_xml.="<coord_x>".$temparray['coord_x']."</coord_x>";
					$_xml.="<coord_y>".$temparray['coord_y']."</coord_y>";
					
					$id_tipo_sen 		= $temparray['id_tipo_sen'];
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					if ( $id_tipo_sen == "1" || $id_tipo_sen == "2" || $id_tipo_sen == "3" || $id_tipo_sen == "5" || $id_tipo_sen == "6" || $id_tipo_sen == "7" ) {
						
						// Consultamos los Datos del Tipo de Soporte de la Señal
						$sopor_sen			= new Sopor_sen;
						$lista_sopor_sen 	= $sopor_sen->consultar_sopor_sen( $id_senal );
						
						$_xml.="<id_tipo_sop>".$lista_sopor_sen[1]."</id_tipo_sop>";
						$_xml.="<nombre_tipo_sop>".utf8_encode($lista_sopor_sen[2])."</nombre_tipo_sop>";
					}
					
					$_xml.="<id_estad_sen>".$temparray['id_estad_sen']."</id_estad_sen>";
					$_xml.="<nombre_estad_sen>".utf8_encode(strtoupper($temparray['nombre_estad_sen']))."</nombre_estad_sen>";
					
					$_xml.="<id_status_sen>".$temparray['id_status_sen']."</id_status_sen>";
					if ( $temparray['id_status_sen'] == "A" ) {
						$_xml.="<nombre_status_sen>ACTIVO</nombre_status_sen>";
					} else if ( $temparray['id_status_sen'] == "I" ) {
						$_xml.="<nombre_status_sen>INACTIVO</nombre_status_sen>";
					}
					
					$_xml.="<fecha_instalacion>".$temparray['fecha_instalacion']."</fecha_instalacion>";
					$_xml.="<estandar>".$temparray['estandar']."</estandar>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
					
					if ( $id_tipo_sen == "9" ) {
						
						// Consultamos los Datos del Semaforo
						$datos_sem			= new Datos_sem;
						$lista_datos_sem 	= $datos_sem->consultar_datos_sem( $id_senal );
						
						$_xml.="<id_tipo_pos>".$lista_datos_sem[1]."</id_tipo_pos>";
						$_xml.="<nombre_tipo_pos>".utf8_encode($lista_datos_sem[2])."</nombre_tipo_pos>";
						$_xml.="<nro_postes>".$lista_datos_sem[3]."</nro_postes>";
						$_xml.="<nro_caras>".$lista_datos_sem[4]."</nro_caras>";
						$_xml.="<nro_contadores>".$lista_datos_sem[5]."</nro_contadores>";
						$_xml.="<id_estad_con>".$lista_datos_sem[6]."</id_estad_con>";
						$_xml.="<nombre_estad_con>".utf8_encode($lista_datos_sem[7])."</nombre_estad_con>";
						$_xml.="<id_model_con>".$lista_datos_sem[8]."</id_model_con>";
						$_xml.="<nombre_model_con>".utf8_encode($lista_datos_sem[9])."</nombre_model_con>";
						$_xml.="<nro_fases>".$lista_datos_sem[10]."</nro_fases>";
						$_xml.="<ciclo>".$lista_datos_sem[11]."</ciclo>";
					}
					
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$login_registro = $temparray['login_registro'];
					$_xml.="<login_registro>".$login_registro."</login_registro>";
					
					// Consultamos el Nombre completo del Usuario
					$usuario			= new Usuario;
					$nombre_usuario_reg  = $usuario->consultar_nombre_usuario($login_registro);
					$_xml.="<nombre_usuario_reg>".utf8_encode($nombre_usuario_reg)."</nombre_usuario_reg>";
					
					$_xml.="<fecha_registro>".$temparray['fecha_registro']."</fecha_registro>";
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones']))."</observaciones_sen>";
					
					$_xml.="<coord_x_centro>".$temparray['coord_x_centro']."</coord_x_centro>";
					$_xml.="<coord_y_centro>".$temparray['coord_y_centro']."</coord_y_centro>";
					$_xml.="<zoom_centro>".$temparray['zoom_centro']."</zoom_centro>";
					$_xml.="</datos_sen>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_sen>";
					$_xml.="VACIO";
					$_xml.="</datos_sen>";
				}
				
				$this->retorno[0] = "S";
				$this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA SEÑAL DADO SU ID PARA ACTUALIZAR/ADJUNTAR
    // =================================================================================================================
	
    public function buscar_datos_sen( $id_senal ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar la Señal para para Actualizar/Adjuntar (Problemas en la Conexión) :".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$sql = "select ds.id_senal as id_senal, 
						ds.coord_x as coord_x, 
						ds.coord_y as coord_y, 
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector, 
						ds.id_tipo_via as id_tipo_via, 
						tv.nombre as nombre_tipo_via, 
						ds.referencia as referencia, 
						ds.observaciones as observaciones
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_via as tv 
					where ds.id_senal = $id_senal and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar la Señal para Actualizar/Adjuntar: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_senal'] != "" ) 
				{
					$_xml="<datos_sen>";
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					$_xml.="<coord_x>".$temparray['coord_x']."</coord_x>";
					$_xml.="<coord_y>".$temparray['coord_y']."</coord_y>";
					
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
									
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones']))."</observaciones_sen>";
					$_xml.="</datos_sen>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_sen>";
					$_xml.="VACIO";
					$_xml.="</datos_sen>";
				}
				
                $this->retorno[0] = "S";
                $this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA SEÑAL DADO SU ID PARA SU MODIFICACIÓN
    // =================================================================================================================
	
    public function consultar_modificar_datos_sen( $id_senal ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar la Señal para Modificar (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$fmt_fecha_ins 	= $conexion->extraerCampoFecha('ds.fecha_instalacion');
			
			$sql = "select ds.id_senal as id_senal, 
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_estad_sen as id_estad_sen, 
						ds.id_status_sen as id_status_sen, 
						$fmt_fecha_ins as fecha_instalacion, 
						ds.estandar as estandar, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector, 
						ds.id_tipo_via as id_tipo_via, 
						ds.referencia as referencia, 
						ds.observaciones as observaciones
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_tipo_via as tv 
					where ds.id_senal = $id_senal and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar la Señal para Modificar: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_senal'] != "" ) 
				{
					$_xml="<datos_sen>";
					$id_senal			= $temparray['id_senal'];
						
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					
					$id_tipo_sen 		= $temparray['id_tipo_sen'];
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					if ( $id_tipo_sen == "1" || $id_tipo_sen == "2" || $id_tipo_sen == "3" || $id_tipo_sen == "5" || $id_tipo_sen == "6" || $id_tipo_sen == "7" ) {
						
						// Registramos los Datos del Tipo de Soporte de la Señal
						$sopor_sen			= new Sopor_sen;
						$lista_sopor_sen 	= $sopor_sen->consultar_sopor_sen( $id_senal );
						
						$_xml.="<id_tipo_sop>".$lista_sopor_sen[1]."</id_tipo_sop>";
					}
					
					$_xml.="<id_estad_sen>".$temparray['id_estad_sen']."</id_estad_sen>";
					$_xml.="<id_status_sen>".$temparray['id_status_sen']."</id_status_sen>";
					
					$_xml.="<fecha_instalacion>".$temparray['fecha_instalacion']."</fecha_instalacion>";
					$_xml.="<estandar>".$temparray['estandar']."</estandar>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
					
					if ( $id_tipo_sen == "9" ) {
						
						// Consultamos los Datos del Semaforo
						$datos_sem			= new Datos_sem;
						$lista_datos_sem 	= $datos_sem->consultar_datos_sem( $id_senal );
						
						$_xml.="<id_tipo_pos>".$lista_datos_sem[1]."</id_tipo_pos>";
						$_xml.="<nombre_tipo_pos>".utf8_encode($lista_datos_sem[2])."</nombre_tipo_pos>";
						$_xml.="<nro_postes>".$lista_datos_sem[3]."</nro_postes>";
						$_xml.="<nro_caras>".$lista_datos_sem[4]."</nro_caras>";
						$_xml.="<nro_contadores>".$lista_datos_sem[5]."</nro_contadores>";
						$_xml.="<id_estad_con>".$lista_datos_sem[6]."</id_estad_con>";
						$_xml.="<nombre_estad_con>".utf8_encode($lista_datos_sem[7])."</nombre_estad_con>";
						$_xml.="<id_model_con>".$lista_datos_sem[8]."</id_model_con>";
						$_xml.="<nombre_model_con>".utf8_encode($lista_datos_sem[9])."</nombre_model_con>";
						$_xml.="<nro_fases>".$lista_datos_sem[10]."</nro_fases>";
						$_xml.="<ciclo>".$lista_datos_sem[11]."</ciclo>";
					}
					
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones']))."</observaciones_sen>";
					$_xml.="</datos_sen>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_sen>";
					$_xml.="VACIO";
					$_xml.="</datos_sen>";
				}
				
                $this->retorno[0] = "S";
                $this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - SINCRONIZACIÓN DE LOS DATOS DE UNA SEÑAL
    // =================================================================================================================
	
    public function sincronizar_datos_sen( $coord_x, $coord_y, $id_tipo_sen, $id_categ_sen, $id_senal_tra, $desc_image_sen, $id_estad_sen, $id_status_sen, $fecha_instalacion, $estandar, $id_estado, $id_municipio, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $login_registro, $fecha_registro, $observaciones, $coord_x_centro, $coord_y_centro, $zoom_centro )
    {
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Sincronizar la Señal (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
            $sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_sen ( coord_x, coord_y, id_tipo_sen, id_categ_sen, id_senal_tra, desc_image_sen, id_estad_sen, id_status_sen, fecha_instalacion, estandar, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia,  login_registro, fecha_registro, observaciones, coord_x_centro, coord_y_centro, zoom_centro )
             values ( '$coord_x', '$coord_y', $id_tipo_sen, $id_categ_sen, $id_senal_tra, '$desc_image_sen', $id_estad_sen, '$id_status_sen', '$fecha_instalacion', '$estandar', '$id_estado', '$id_municipio', ";
			
            if ( $id_parroquia != "" ) {
                    $sql .= "'$id_parroquia', ";
            } else {
                    $sql .= "null, ";
            }
            if ( $id_sector != "" ) {
                    $sql .= "'$id_sector', ";
            } else {
                    $sql .= "null, ";
            }
			
			$sql .= "$id_tipo_via, ";
			
            if ( $referencia != "" ) {
                    $sql .= "'$referencia', ";
            } else {
                    $sql .= "null, ";
            }
			
            $sql .= "'$login_registro', '$fecha_registro', ";
			
            if ( $observaciones != "" ) {
                    $sql .= "'$observaciones', ";
            } else {
                    $sql .= "null, ";
            }
			
			$sql .= "'$coord_x_centro', '$coord_y_centro', $zoom_centro )";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Sincronizar la Señal: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Señal de Tránsito se ha Sincronizado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
        }
    }
}
?>